import { formatJson } from '@/utils'

export function handleYwExport(ticketList, startDate, endDate, callback) {
  import('@/vendor/Export2Excel').then(excel => {
    const tHeader = [
      '报告类型',
      '是否新的',
      '不良反应发生部门',
      '患者姓名',
      '性别',
      '出生日期',
      '年龄',
      '民族',
      '体重',
      '患者联系方式',
      '原患疾病',
      '医院名称',
      '既往药品不良反应',
      '家族药品不良反应',
      '相关重要信息',
      '怀疑药品',
      '药品序号',
      '批准文号',
      '商品名称',
      '通用名称',
      '剂型',
      '生产厂家',
      '生产批号',
      '用量',
      '用量单位',
      '用法-日',
      '用法-次',
      '给药途径',
      '用药开始时间',
      '用药终止时间',
      '用药原因',
      '不良反应名称',
      '不良反应发生时间',
      '不良反应发生过程描述',
      '不良反应结果',
      '后遗症表现',
      '死亡时间',
      '直接死因',
      '停药或减量后反应是否消失或减轻',
      '再次使用可疑药品后是否再次出现同样反应',
      '对原患疾病的影响',
      '报告人评价',
      '报告人评价签名',
      '报告单位评价',
      '报告单位评价签名',
      '报告人联系电话',
      '报告人职业',
      '报告人邮箱',
      '报告人签名',
      '报告单位名称',
      '报告单位联系人',
      '报告单位联系电话',
      '报告日期',
      '备注'
    ]
    const filterVal = [
      'bglx_cd',
      'bglx',
      'dsr_dept',
      'patient_name',
      'patient_sex',
      'patient_birth',
      'patient_age',
      'patient_mz',
      'patient_weight',
      'patient_phone',
      'yhjb',
      'hb_hospital',
      'jwypbl',
      'jzypbl',
      'xgzyxx',
      'hyyp',
      'ypxh',
      'approvalNum',
      'name',
      'niversalName',
      'dosageFrom',
      'prodFactory',
      'prodBatch',
      'dosage',
      'dosageUnit',
      'dosageDay',
      'dosageRate',
      'drugRoute',
      'startDate',
      'endDate',
      'reason',
      'blsj_name',
      'fsrq',
      'ypblfygc',
      'blfyjg',
      'hyzbx',
      'dead_time',
      'zjsy',
      'tyjq',
      'zcsykyywh',
      'dyhbyx',
      'glx_bgrpj',
      'glx_bgrpjqm',
      'glx_bgdw',
      'glx_bgdwqm',
      'bgrxx_phone',
      'bgrxx_zy',
      'bgrxx_email',
      'bgrxx_sign',
      'bgdwxx_dwmc',
      'bgdwxx_lxr',
      'bgdwxx_phone',
      'bgdwxx_bgrq',
      'remarks'
    ]
    const listData = ticketList
    const resultList = []
    for (let i = 0; i < listData.length; i++) {
      // let jsonObj = JSON.parse(listData[i].form_data);
      const jsonObj = listData[i].form_data
      if (jsonObj) {
        listData[i] = jsonObj
        listData[i].bglx = (jsonObj['bglx'] && jsonObj['bglx'].length > 0) ? jsonObj['bglx'][0] : ''
      }
      if (jsonObj['suspectedDrug'] && jsonObj['suspectedDrug'].length > 0) {
          	for (let j = 0; j < jsonObj['suspectedDrug'].length; j++) {
          		let sjData = listData[i]
          		sjData['hyyp'] = '怀疑'
          		sjData['ypxh'] = j + 1
          		sjData = { ...sjData, ...jsonObj['suspectedDrug'][j] }
          		resultList.push(sjData)
          	}
      } else {
          	resultList.push(listData[i])
      }
    }
    let fileName
    if (startDate && endDate) {
        	fileName = `${startDate}-${endDate}药物不良反应事件列表`
    } else {
        	fileName = `药物不良反应事件列表`
    }
    console.log(resultList)
    const data = formatJson(filterVal, resultList)
    excel.export_json_to_excel({
      header: tHeader,
      data,
      filename: fileName,
      autoWidth: true, // Optional
      bookType: 'xlsx' // Optional
    })
    callback()
  })
}

// 导出医疗器械
export function handleYLQXExport(ticketList, startDate, endDate, callback) {
  import('@/vendor/Export2Excel').then(excel => {
    const tHeader = [
      '产品名称',
      '上市许可持有人名称',
      '注册证编号',
      '型号',
      '产品批号',
      '产品编号',
      '生产日期',
      '有效期至',
      'UDI',
      '事件发生日期',
      '事件发现或获知日期',
      '姓名',
      '年龄',
      '出生日期',
      '伤害程度',
      '伤害表现',
      '器械故障表现',
      '病历号',
      '预期治疗疾病或作用',
      '使用过程',
      '使用场所',
      '场所名称',
      '器械使用日期',
      '合并用药/械情况',
      '事件原因分析'
    ]
    const filterVal = [
      'ylqx_cpmc',
      'ylqx_cyrmc',
      'ylqx_zczbh',
      'ylqx_xinghao',
      'ylqx_cpph',
      'ylqx_cpbh',
      'ylqx_scrq',
      'ylqx_yxqz',
      'ylqx_udi',
      'tbrqk_fsrq',
      'ylqx_sjfxrq',
      'blsjqk_name',
      'blsjqk_age',
      'blsjqk_birth',
      'ylqx_shcd',
      'ylqx_shbx',
      'ylqx_qxgzbx',
      'blsjqk_blh',
      'syqk_zlzy',
      'syqk_sygc',
      'syqk_sycs',
      'syqk_csmc',
      'syqk_qxsyrq',
      'syqk_hbyyqk',
      'sjcbyy_yyfx'
    ]
    const listData = ticketList
    const resultList = []
    for (let i = 0; i < listData.length; i++) {
      // let jsonObj = JSON.parse(listData[i].form_data);
      const jsonObj = listData[i].form_data
      if (jsonObj) {
        listData[i] = jsonObj
      }
      resultList.push(listData[i])
    }
    let fileName
    if (startDate && endDate) {
      fileName = `${startDate}-${endDate}医疗器械不良反应事件列表`
    } else {
      fileName = `医疗器械不良反应事件列表`
    }
    console.log(resultList)
    const data = formatJson(filterVal, resultList)
    excel.export_json_to_excel({
      header: tHeader,
      data,
      filename: fileName,
      autoWidth: true, // Optional
      bookType: 'xlsx' // Optional
    })
    callback()
  })
}
